<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:48706dec-dcf6-4017-b88f-12ffb555bf5d(jsh.generator.template.main@generator)">
  <persistence version="3" />
  <refactoringHistory />
  <language namespace="b401a680-8325-4110-8fd3-84331ff25bef(jetbrains.mps.lang.generator)" />
  <language namespace="d7706f63-9be2-479c-a3da-ae92af1e64d5(jetbrains.mps.lang.generator.generationContext)" />
  <language namespace="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" />
  <language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
  <language namespace="5d0fe47c-3d83-454a-b97b-b0d4fd84c092(jsh)" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902c1(jetbrains.mps.baseLanguage.constraints)" version="83" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ba(jetbrains.mps.lang.sharedConcepts.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590283(jetbrains.mps.lang.core.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902fb(jetbrains.mps.lang.smodel.constraints)" version="21" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902f3(jetbrains.mps.lang.generator.generationContext.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959028c(jetbrains.mps.lang.structure.constraints)" version="11" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902bc(jetbrains.mps.lang.sharedConcepts.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902db(jetbrains.mps.baseLanguage.blTypes.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e2(jetbrains.mps.lang.generator.constraints)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590334(jetbrains.mps.baseLanguage.closures.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902e8(jetbrains.mps.lang.generator.structure)" version="2" />
  <languageAspect modelUID="r:89beeebe-c409-404a-ac09-da8c5edd700a(jsh.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590328(jetbrains.mps.baseLanguage.collections.constraints)" version="6" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ae(jetbrains.mps.lang.typesystem.constraints)" version="17" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959033d(jetbrains.mps.lang.annotations.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590340(jetbrains.mps.lang.pattern.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590345(jetbrains.mps.lang.pattern.structure)" version="0" />
  <devkit namespace="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
  <maxImportIndex value="4" />
  <import index="1" modelUID="r:89beeebe-c409-404a-ac09-da8c5edd700a(jsh.structure)" version="3" />
  <import index="2" modelUID="f:java_stub#java.lang(java.lang@java_stub)" version="-1" />
  <import index="3" modelUID="f:java_stub#java.io(java.io@java_stub)" version="-1" />
  <import index="4" modelUID="r:e6f19801-1388-44df-81c3-9b5eba7fef84(jsh)" version="-1" />
  <node type="jetbrains.mps.lang.generator.structure.MappingConfiguration" id="2875089326488535984">
    <property name="name" value="main" />
    <node role="reductionMappingRule" type="jetbrains.mps.lang.generator.structure.Reduction_MappingRule" id="2875089326488547394">
      <link role="applicableConcept" targetNodeId="1.8018066996451895643" resolveInfo="Ls" />
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="2875089326488547396">
        <link role="template" targetNodeId="2875089326488547397" resolveInfo="reduce_Ls" />
      </node>
    </node>
    <node role="reductionMappingRule" type="jetbrains.mps.lang.generator.structure.Reduction_MappingRule" id="7747186999601867854">
      <link role="applicableConcept" targetNodeId="1.7747186999601534396" resolveInfo="Pipe" />
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="7747186999601867856">
        <link role="template" targetNodeId="7747186999601867857" resolveInfo="reduce_Pipe" />
      </node>
    </node>
    <node role="reductionMappingRule" type="jetbrains.mps.lang.generator.structure.Reduction_MappingRule" id="8037047503614704533">
      <link role="applicableConcept" targetNodeId="1.7747186999602282685" resolveInfo="Direct" />
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8037047503614704535">
        <link role="template" targetNodeId="8037047503614704536" resolveInfo="reduce_Direct" />
      </node>
    </node>
    <node role="reductionMappingRule" type="jetbrains.mps.lang.generator.structure.Reduction_MappingRule" id="8037047503616067873">
      <link role="applicableConcept" targetNodeId="1.8018066996452279527" resolveInfo="Grep" />
      <node role="ruleConsequence" type="jetbrains.mps.lang.generator.structure.TemplateDeclarationReference" id="8037047503616067875">
        <link role="template" targetNodeId="8037047503616067876" resolveInfo="reduce_Grep" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="2875089326488547397">
    <property name="name" value="reduce_Ls" />
    <link role="applicableConcept" targetNodeId="1.8018066996451895643" resolveInfo="Ls" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="2875089326488547399">
      <property name="name" value="ReduceLs" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="2875089326488547400" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="2875089326488547401">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="2875089326488547402" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="2875089326488547403" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="2875089326488547404" />
      </node>
      <node role="method" type="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" id="2875089326488547405">
        <property name="name" value="reduce" />
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="2875089326488547406" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="2875089326488547407">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" id="2875089326488745419">
            <node role="localVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" id="2875089326488745420">
              <property name="name" value="s" />
              <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="2875089326488745421">
                <link role="classifier" targetNodeId="2.~String" resolveInfo="String" />
              </node>
              <node role="initializer" type="jetbrains.mps.baseLanguage.structure.StringLiteral" id="2875089326488745423">
                <property name="value" value="" />
              </node>
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="2875089326488872407">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="2875089326488872409">
              <link role="baseMethodDeclaration" targetNodeId="4.2875089326488872391" resolveInfo="ls" />
              <link role="classConcept" targetNodeId="4.2875089326488848828" resolveInfo="ShellUtil" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference" id="2875089326488872410">
                <link role="variableDeclaration" targetNodeId="2875089326488745420" resolveInfo="s" />
                <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="2875089326488872414">
                  <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="2875089326488872415">
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="2875089326488872416">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="2875089326488872417">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="2875089326488872419">
                          <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="2875089326488872418" />
                          <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="2875089326488872423">
                            <link role="link" targetNodeId="1.8018066996452131723" />
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
              <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="2875089326488872411" />
              <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.NodeMacro" id="2875089326488872412" />
            </node>
          </node>
        </node>
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="2875089326488547408" />
        <node role="throwsItem" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="5768950545889754775">
          <link role="classifier" targetNodeId="3.~IOException" resolveInfo="IOException" />
        </node>
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="7747186999601867857">
    <property name="name" value="reduce_Pipe" />
    <link role="applicableConcept" targetNodeId="1.7747186999601534396" resolveInfo="Pipe" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="7747186999601875795">
      <property name="name" value="ReducePipe" />
      <node role="method" type="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" id="7747186999601875802">
        <property name="name" value="reduce" />
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.TypeVariableReference" id="7747186999601878265">
          <link role="typeVariableDeclaration" targetNodeId="7747186999601878258" resolveInfo="R" />
        </node>
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="7747186999601875804" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="7747186999601878195">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" id="7747186999601878198">
            <node role="localVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" id="7747186999601878199">
              <property name="name" value="o" />
              <node role="type" type="jetbrains.mps.baseLanguage.structure.TypeVariableReference" id="7747186999601878259">
                <link role="typeVariableDeclaration" targetNodeId="7747186999601878257" resolveInfo="D" />
              </node>
              <node role="initializer" type="jetbrains.mps.baseLanguage.structure.NullLiteral" id="7747186999601878274" />
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" id="7747186999601878202">
            <node role="localVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" id="7747186999601878203">
              <property name="name" value="f" />
              <node role="initializer" type="jetbrains.mps.baseLanguage.structure.NullLiteral" id="7747186999601878280" />
              <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="7747186999601878319">
                <link role="classifier" targetNodeId="4.2875089326488171830" resolveInfo="Func" />
                <node role="parameter" type="jetbrains.mps.baseLanguage.structure.TypeVariableReference" id="7747186999601878331">
                  <link role="typeVariableDeclaration" targetNodeId="7747186999601878257" resolveInfo="D" />
                </node>
                <node role="parameter" type="jetbrains.mps.baseLanguage.structure.TypeVariableReference" id="7747186999601878334">
                  <link role="typeVariableDeclaration" targetNodeId="7747186999601878258" resolveInfo="R" />
                </node>
              </node>
            </node>
          </node>
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ReturnStatement" id="7747186999601878268">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="7747186999601878249">
              <link role="baseMethodDeclaration" targetNodeId="4.7747186999601878011" resolveInfo="pipe" />
              <link role="classConcept" targetNodeId="4.2875089326488848828" resolveInfo="ShellUtil" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference" id="7747186999601878250">
                <link role="variableDeclaration" targetNodeId="7747186999601878199" resolveInfo="o" />
                <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="7747186999601878285">
                  <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="7747186999601878288">
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="7747186999601878289">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="7747186999601878290">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="7747186999601878291">
                          <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="7747186999602167694">
                            <link role="link" targetNodeId="1.7747186999601994839" />
                          </node>
                          <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="7747186999601878293" />
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.LocalVariableReference" id="7747186999601878254">
                <link role="variableDeclaration" targetNodeId="7747186999601878203" resolveInfo="f" />
                <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="7747186999601878298">
                  <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="7747186999601878301">
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="7747186999601878302">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="7747186999601878303">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="7747186999601878304">
                          <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="7747186999602167695">
                            <link role="link" targetNodeId="1.7747186999601994838" />
                          </node>
                          <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="7747186999601878306" />
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
              <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8037047503615624145" />
              <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.NodeMacro" id="8037047503615624146" />
            </node>
          </node>
        </node>
        <node role="typeVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" id="7747186999601878257">
          <property name="name" value="D" />
        </node>
        <node role="typeVariableDeclaration" type="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" id="7747186999601878258">
          <property name="name" value="R" />
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="7747186999601875796" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="7747186999601875797">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="7747186999601875798" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="7747186999601875799" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="7747186999601875800" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8037047503614704536">
    <property name="name" value="reduce_Direct" />
    <link role="applicableConcept" targetNodeId="1.7747186999602282685" resolveInfo="Direct" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8037047503614707203">
      <property name="name" value="ReduceDirect" />
      <node role="method" type="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" id="8037047503614707209">
        <property name="name" value="reduce" />
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8037047503614707210" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503614707211" />
        <node role="throwsItem" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503614725460">
          <link role="classifier" targetNodeId="3.~IOException" resolveInfo="IOException" />
        </node>
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503615745187">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8037047503615851141">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="8037047503615851143">
              <link role="baseMethodDeclaration" targetNodeId="4.8037047503614709407" resolveInfo="direct" />
              <link role="classConcept" targetNodeId="4.2875089326488848828" resolveInfo="ShellUtil" />
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.NullLiteral" id="8037047503615851144">
                <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="8037047503615851150">
                  <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="8037047503615851151">
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503615851152">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8037047503615851153">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8037047503615851155">
                          <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8037047503615851154" />
                          <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8037047503615851159">
                            <link role="link" targetNodeId="1.7747186999602282688" />
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
              <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.NullLiteral" id="8037047503615851146">
                <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="8037047503615851161">
                  <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="8037047503615851162">
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503615851163">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8037047503615851164">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8037047503615851166">
                          <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8037047503615851165" />
                          <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8037047503615851170">
                            <link role="link" targetNodeId="1.7747186999602282691" />
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                </node>
              </node>
            </node>
            <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8037047503615851147" />
            <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.NodeMacro" id="8037047503615851148" />
          </node>
        </node>
      </node>
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503614707204" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8037047503614707205">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8037047503614707206" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503614707207" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503614707208" />
      </node>
    </node>
  </node>
  <node type="jetbrains.mps.lang.generator.structure.TemplateDeclaration" id="8037047503616067876">
    <property name="name" value="reduce_Grep" />
    <link role="applicableConcept" targetNodeId="1.8018066996452279527" resolveInfo="Grep" />
    <node role="contentNode" type="jetbrains.mps.baseLanguage.structure.ClassConcept" id="8037047503616067878">
      <property name="name" value="ReduceGrep" />
      <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503616067879" />
      <node role="constructor" type="jetbrains.mps.baseLanguage.structure.ConstructorDeclaration" id="8037047503616067880">
        <node role="returnType" type="jetbrains.mps.baseLanguage.structure.VoidType" id="8037047503616067881" />
        <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503616067882" />
        <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503616067883">
          <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8037047503616070070">
            <node role="expression" type="jetbrains.mps.baseLanguage.structure.GenericNewExpression" id="8037047503616070071">
              <node role="creator" type="jetbrains.mps.baseLanguage.structure.AnonymousClassCreator" id="8037047503616092961">
                <node role="cls" type="jetbrains.mps.baseLanguage.structure.AnonymousClass" id="8037047503616092962">
                  <property name="nonStatic" value="true" />
                  <link role="classifier" targetNodeId="4.2875089326488171830" resolveInfo="Func" />
                  <link role="baseMethodDeclaration" targetNodeId="2.~Object.&lt;init&gt;()" resolveInfo="Object" />
                  <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503616092963" />
                  <node role="method" type="jetbrains.mps.baseLanguage.structure.InstanceMethodDeclaration" id="8037047503616092964">
                    <property name="isAbstract" value="false" />
                    <property name="name" value="f" />
                    <node role="returnType" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092979">
                      <link role="classifier" targetNodeId="2.~Iterable" resolveInfo="Iterable" />
                      <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092981">
                        <link role="classifier" targetNodeId="3.~File" resolveInfo="File" />
                      </node>
                    </node>
                    <node role="visibility" type="jetbrains.mps.baseLanguage.structure.PublicVisibility" id="8037047503616092966" />
                    <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" id="8037047503616092967">
                      <property name="name" value="arg" />
                      <node role="type" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092982">
                        <link role="classifier" targetNodeId="2.~Iterable" resolveInfo="Iterable" />
                        <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092984">
                          <link role="classifier" targetNodeId="3.~File" resolveInfo="File" />
                        </node>
                      </node>
                    </node>
                    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503616092969">
                      <node role="statement" type="jetbrains.mps.baseLanguage.structure.ReturnStatement" id="8037047503616092987">
                        <node role="expression" type="jetbrains.mps.baseLanguage.structure.StaticMethodCall" id="8037047503616092990">
                          <link role="baseMethodDeclaration" targetNodeId="4.3098830523764008868" resolveInfo="grep" />
                          <link role="classConcept" targetNodeId="4.2875089326488848828" resolveInfo="ShellUtil" />
                          <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.ParameterReference" id="8037047503616092991">
                            <link role="variableDeclaration" targetNodeId="8037047503616092967" resolveInfo="arg" />
                          </node>
                          <node role="actualArgument" type="jetbrains.mps.baseLanguage.structure.NullLiteral" id="8037047503616094862">
                            <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.CopySrcNodeMacro" id="8037047503616094865">
                              <node role="sourceNodeQuery" type="jetbrains.mps.lang.generator.structure.SourceSubstituteMacro_SourceNodeQuery" id="8037047503616094868">
                                <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="8037047503616094869">
                                  <node role="statement" type="jetbrains.mps.baseLanguage.structure.ExpressionStatement" id="8037047503616094870">
                                    <node role="expression" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="8037047503616094871">
                                      <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="8037047503616094872">
                                        <link role="link" targetNodeId="1.8018066996452279530" />
                                      </node>
                                      <node role="operand" type="jetbrains.mps.lang.generator.structure.TemplateFunctionParameter_sourceNode" id="8037047503616094873" />
                                    </node>
                                  </node>
                                </node>
                              </node>
                            </node>
                          </node>
                        </node>
                      </node>
                    </node>
                  </node>
                  <node role="typeParameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092971">
                    <link role="classifier" targetNodeId="2.~Iterable" resolveInfo="Iterable" />
                    <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092974">
                      <link role="classifier" targetNodeId="3.~File" resolveInfo="File" />
                    </node>
                  </node>
                  <node role="typeParameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092976">
                    <link role="classifier" targetNodeId="2.~Iterable" resolveInfo="Iterable" />
                    <node role="parameter" type="jetbrains.mps.baseLanguage.structure.ClassifierType" id="8037047503616092978">
                      <link role="classifier" targetNodeId="3.~File" resolveInfo="File" />
                    </node>
                  </node>
                </node>
              </node>
              <node role="templateFragment$attribute" type="jetbrains.mps.lang.generator.structure.TemplateFragment" id="8037047503616194314" />
              <node role="nodeMacro$attribute" type="jetbrains.mps.lang.generator.structure.NodeMacro" id="8037047503616194315" />
            </node>
          </node>
        </node>
      </node>
    </node>
  </node>
</model>

